其他
解密 Schnorr 签名:Blockstream 的 MuSig 可以改善比特币交易?
继上个月推出工作代码后,区块链技术公司 Blockstream 希望未来能够成功为比特币交易开发新的多重签名标准。
除此之外,Blockstream 还在 3 月初发布了最新版本的比特币扩容软件 c-lightning,标志着这家备受推崇的开发公司进入了繁忙时期。
升级比特币协议
从历史上看,自 2009 年比特币协议诞生以来,其潜在的升级一直是争论的焦点。
中本聪最初的比特币白皮书被视为神圣的文本,对该技术工作方式的任何改变都会遭到怀疑和反对。
尽管如此,由于用户数量的大幅增加以及网络及时且经济高效地处理交易的能力,比特币协议多年来也遇到了一些初期问题。
鉴于必须对代码的任何潜在更改达成共识,比特币已经通过 SegWit 等实施方式得到了改进,SegWit 在过去两年中缓慢推出。
任何未经社区大多数人同意的改变都会导致有争议的硬分叉,从而催生了比特币现金等分叉币。
因此,对比特币协议的任何潜在改变都需要大量的时间、研究、开发和测试,然后才能推广到更广泛的社区供考虑和实施。
MuSig
Blockstream 的新的基于 Schnorr 的多重签名方案(MuSig)已推出用于公开测试和反馈,以便在未来创建有效的、无故障的代码。
对于外行来说,MuSig 是一项改进,可以通过提高性能和用户隐私来减少交易规模,从而潜在地帮助扩展比特币区块链。
该代码的基础是由 Blockstream 密码学家 Pieter Wuille 和 Andrew Poelstra,以及 Yannick Seurin 和 Gregory Maxwell 在 2018 年发布的一篇研究论文中奠定的。
仅仅一年多后,Blockstream 在 GitHub 上发布了工作代码供更广泛的加密货币社区测试,希望它最终能够合并到比特币核心代码和其他项目中。
Schnorr 签名
数字签名提供了加密证明,表明交易是由特定私钥所有者授权的,大多数比特币个人用户都会使用来自发送地址私钥所有者的一个签名来发送交易。
当钱包有多个所有者时,多重签名提供相同类型的加密证明,在这种情况下,各个所有者需要生成自己的个人签名,以便生成授权交易的多重签名。
Schnorr 签名是一种特定类型的多重签名,它提供了一些重要的好处,Schnorr 这个名字来自多重签名算法的创建者 Claus Schnorr。
Cointelegraph 联系了 Blockstream 密码学家 Andrew Poelstra,以更好地了解拟议的 MuSig 升级的复杂性,正如他所解释的,该算法提供了许多好处:
“Schnorr 多重签名是一种特定类型的多重签名,它很小(无论签名者集大小如何,均为 64 字节),可以非常有效地进行验证,并且避免将签名者的数量暴露给区块链。”
这种实现之所以会对比特币协议的工作方式产生巨大影响,是因为目前使用的多重签名形式。
Poelstra 再次解释说,当前的多重签名,即椭圆曲线数字签名算法(ECDSA)过于简单化,因为它要求所有签名者生成单独的签名,然后将其包含在相关交易中。
“这意味着对于 2 个签名者来说,处理交易需要两倍的区块链空间和两倍的验证时间,如果比特币支持 Schnorr 签名而不是 ECDSA,这将启用多种新技术 - 最重要的是 Schnorr 多重签名。”
对于验证比特币交易的矿工网络来说,这些基于 Schnorr 的多重签名与普通签名相同,这意味着它们的大小相同,验证所需的时间也相同,但它们也更加私密。
根据 Poelstra 的说法,他们不会透露原始签名者集,甚至不会提供多重签名交易的签名者数量,这应该会增加多重签名交易的匿名性和隐私性。
ECDSA
比特币目前使用 ECDSA 签名算法来验证区块链上 BTC 的所有权和转移,正如 Blockstream 在其原始公告中所解释的那样,ECDSA 签名有许多限制。
最大的担忧是由于生成的签名结构的复杂性,使用 ECDSA 创建多重签名很困难。
Blockstream 对 ECDSA 和其他当前多重签名方案的主要担忧是,它们假设交易签名者可以控制其密钥的生成方式和时间,并且拥有可靠且安全的内存。
事实上,许多比特币用户无法访问他们的密钥及其生成方式,他们也无法控制第三方及其使用密钥的方式,区块链提出的 MuSig 方案希望通过两种方式解决这个问题。
首先,MuSig 创建简短且大小一致的签名,无论涉及多少签名者,这些签名对于验证者来说都是相同的,这样做的目的是通过减轻签名者详细信息的负担同时保持安全性来提高效率。
其次,MuSig 希望使用普通公钥提供可证明的安全性,他们的目标是让签名者能够灵活地生成和为交易提供多重签名,而无需提供有关如何生成密钥的额外信息。
值得注意的是,由于生态系统中密钥管理策略的多样性,这仍然是比特币密钥生成的一个难题。
需要进行广泛的测试
虽然 Blockstream 希望提供一个可行的解决方案来改进多重签名交易,但他们并不对这样做的挑战抱有任何幻想。
确保多重签名交易的安全性要复杂得多,因为它不能简单地使用相同的哈希方法通过加密哈希来确保签名的统一随机性。
多重签名交易的后续签名者可以使用其他签名者的“随机数”(一种只能在加密交易中使用一次的哈希值)进行多个签名。
当前的解决方案是使用会话 ID 进行多重签名交易的签名会话,这是一个临时解决方案,直到 Blockstream 开发出更强大的解决方案为止。
考虑到验证需要多个参与者签名的交易所涉及的步骤数量,重放攻击仍然是多重签名交易的一个问题。
考虑到所有这些,Poelstra 告诉 Cointelegraph,Schnorr 签名的安全性及其在 MuSig 中的使用并不是一个问题:
“Schnorr 签名在代数上很容易推理,并且在与 ECDSA 相同的加密假设下可以证明是安全的,当然,与对比特币的任何拟议更改一样,Schnorr 签名的引入需要大量的测试和审查。”
前进的道路
为 MuSig 的测试和潜在实施制定时间表并不是一个简单的概念,考虑到确保多重签名交易的安全性和有效性的复杂性,一个可行且值得信赖的解决方案将需要相当长的时间才能产生。
正如 Poelstra 解释的那样,开发和实施 MuSig 将需要与更广泛的比特币社区合作:
“第一步是制定一个具体的、具体的提案,并将其发送到比特币开发邮件列表以供社区审查,审查过程可能需要几个月的时间,在此期间提案可能会发生许多变化,与此并行并随后继续,需要编写、测试和审查代码,然后需要广泛部署该软件,然后才能激活更改,很难说整个过程需要多长时间。”
Poelstra 表示,如果该代码得到更广泛的比特币社区的批准和实施,则无需进行任何形式的硬分叉来实施更改:
“2017 年 Segwit 的推出还引入了一种用于更改比特币脚本的版本控制机制(例如引入新的签名方案),这允许在软分叉中进行此类升级,在 Segwit 之前,也可以在软分叉中引入 Schnorr 签名,尽管需要更多的工程工作来确保用户在不同时间更新时的平稳过渡。”
我们鼓励更广泛的比特币开发社区在 GitHub 上测试 Blockstream 的代码,以促进在未来几个月和几年内开发完全可用的代码。
比特币核心开发人员揭示 Schnorr 签名如何帮助扩展比特币
四位比特币开发人员发布了一篇论文,概述了 Schnorr 多重签名(“multisig”)如何帮助扩展比特币区块链:
eprint.iacr.org/2018/068.pdf
在 1 月 15 日发表的论文中,Greg Maxwell、Andrew Poelstra、Yannick Seurin 和 Pieter Wuille 讨论并说明了将多重签名数据“捆绑”在一起以减少交易大小的技术,可以在比特币中提高性能和用户隐私。
在过去的几年里,多重签名在比特币的各种应用中得到了广泛的应用,其商标安全优势是一些消费者钱包应用程序的主要特征,本周的论文关注 Schnorr 多重签名如何提供增强的交易隐私。
随着各种改进越来越接近主流接受,比特币扩容解决方案的需求仍然迫切。
其中最主要的是 1 月份的闪电网络,这是一种所谓的第 2 层协议,可促进几乎即时处理的比特币交易接近零费用。
正如 Blockstream 工程师在 1 月 16 日发布的帖子中所说,主网闪电交易仍处于“测试阶段”,并且正在小规模进行,只有大约 50 个节点和 80 个通道在运行。
Schnorr 签名长期以来一直受到技术评论员的喜爱,去年 7 月因其安全优势而受到区块链顾问 Sam Wouters 的赞扬,Wouters 在一篇文章中解释了这项技术的重要性,他说:
“归根结底,如果只有一个人从多个来源发送该交易,那么应该有某种方法只需一个签名即可做到这一点,对吗?这就是 Schnorr 签名允许我们做的事情。”
延伸阅读:
来源:Cointelegraph翻译:Catherine
- 往 期 推 荐 -
随着交易者焦点转向符文,BRC-20 代币在比特币减半之前大幅流血
你关心的 IC 内容
技术进展 | 项目信息 | 全球活动
长按关注 IC 微信公众号
掌握最新资讯
*添加小助手微信 comiocn 进交流社群